home *** CD-ROM | disk | FTP | other *** search
/ The Games Machine 131 / XENIATGM131.iso / Goodies / I-WAR 2 Egde of Chaos - New SDK / IW2-EOC_Pog_Scripting_SDK.exe / include / iMultiplay.h < prev    next >
C/C++ Source or Header  |  2002-01-14  |  20KB  |  774 lines

  1. //
  2. // (c) 1999 Particle Systems Ltd. All Rights Reserved
  3. //
  4. // iShip.h
  5. //
  6. // API for the package List.
  7. //
  8. // Revision control information:
  9. //
  10. // $Header:
  11. //
  12.  
  13.  
  14. #include "Flux.h"
  15.  
  16. #ifdef FLUX_COMPILE
  17.  
  18. FLUX_DECLARE_EXTENSION(iMultiplay);
  19.  
  20. #ifdef FLUX_LIB
  21. #if _MSC_VER >= 1000
  22. #pragma comment( lib, "imultiplay" )
  23. #endif // _MSC_VER >= 1000
  24. #endif // FLUX_LIB
  25.  
  26. #else
  27.  
  28.  
  29. // Dependencies
  30. uses iSim, iShip, iHabitat;
  31.  
  32.  
  33. enum eBcastMessageType
  34. {
  35.     BMT_None,
  36.     BMT_Conversation,
  37.     BMT_Info,
  38.     BMT_Event,
  39.     BMT_Audio
  40. };
  41.  
  42.  
  43. enum eScoreSortMode
  44. {
  45.     SSM_Frags,
  46.     SSM_Flags
  47. };
  48.  
  49.  
  50.  
  51. //
  52. //
  53. // Multiplay Server routines
  54. //
  55. //
  56.  
  57.  
  58.  
  59.  
  60. //
  61. // Add a sim that is propogated from server to client,
  62. // but doesn't send periodic update info.
  63. // Useful for adding static sims like asteriods and other space furniture.
  64. //
  65. prototype iMultiplay.SetTransmitFlag( hsim sim, bool set_it );
  66.  
  67. //
  68. // Simialar to above, but allow server to send updates.
  69. //
  70. prototype iMultiplay.SetUpdateFlag( hsim sim, bool set_it);
  71.  
  72. //
  73. // bool iMultiplay.AddAIShip ( hship ship , hsim marker)
  74. //
  75. // Creates a new sim on the server which is propogated to the clients
  76. // The sim is placed next to the marker sim offset by x, y, z.
  77. //
  78. prototype bool iMultiplay.AddAIShip ( hship ship , hsim marker, float x, float y, float z);
  79.  
  80.  
  81. //
  82. // Installs a default AI pilot onto a ship
  83. //
  84. prototype iMultiplay.InstallAIPilot( hship ship );
  85.  
  86.  
  87. //
  88. // iMultiplay.InstallAIPilot( hship ship )
  89. //
  90. // Similar behaviour to iShip.InstallAIPilot
  91. //
  92. // Attach an AI pilot to this ship and detach the player pilot if attached.
  93. //
  94. // Arg 0 : The ship handle
  95. // Arg 1 : Fight/Flee threshold
  96. // Arg 2 : Ignore/Fight threshold
  97. // Arg 3 : Self preservation ratio (% hit points to self preserve)
  98. // Arg 4 : Fight function
  99. // Arg 5 : Flee function
  100. // Arg 6 : Ignore function
  101. // Arg 7 : Self preservation function
  102. //
  103. prototype iMultiplay.InstallAIPilotX( hship ship , float ignore_fight, float fight_flee,
  104.                                       float self_preserve, string fight_func,
  105.                                       string flee_func, string ignore_func, 
  106.                                       string self_preserve_func );
  107.  
  108.  
  109.  
  110. //
  111. // Sets the default speed & acceleration limits
  112. //
  113. prototype iMultiplay.SetShipLimits( hship ship );
  114.  
  115. //
  116. // Link all available weapons
  117. //
  118. prototype iMultiplay.LinkShipWeapons( hship ship );
  119.  
  120. // 
  121. // Unlink linked weapons
  122. //
  123. prototype iMultiplay.UnlinkShipWeapons( hship ship );
  124.  
  125. //
  126. // Add a weapon to the ship's loadout
  127. //
  128. // Add the weapon specified by the weapon_resource to ship,
  129. // giving the powerup that triggered the event.
  130. //
  131. prototype iMultiplay.AddPowerupWeapon( hship ship, 
  132.                                        hisim powerup);
  133.  
  134.  
  135.  
  136.  
  137. //
  138. // Add a weapon to the ship's loadout
  139. //
  140. // Add the weapon specified by the weapon_resource to ship,
  141. // giving a resource for the weapon directly
  142. //
  143. prototype iMultiplay.AddPowerupWeaponDirect( hship ship, 
  144.                                              string resource_ini );
  145.  
  146. //
  147. // Remove weapons and optionally generate a list of powerups 
  148. // 
  149. //
  150. prototype list iMultiplay.RemovePowerupWeapons( hship ship, bool power_ups );
  151.  
  152.  
  153. //
  154. // Remove an individual powerup from a ship directly.
  155. //
  156. prototype iMultiplay.RemovePowerupWeaponDirect( hship ship, string resource_ini );
  157.  
  158. //
  159. // bool iMultiplay.EndGame()
  160. //
  161. // Inform the server to end the current game session and 
  162. // let players know their scores etc.
  163. //
  164. prototype bool iMultiplay.EndGame ();
  165.  
  166.  
  167. //
  168. // iMultiplay.SendScores()
  169. //
  170. // Called on the server to send a score update
  171. // to client with index i.
  172. //
  173. prototype iMultiplay.SendScores( hsim player );
  174.  
  175.  
  176. //
  177. // Augment score table with AI Bot info
  178. //
  179. prototype iMultiplay.AddBotEndGameInfo( string name,
  180.                                         string team,
  181.                                         int    frags,
  182.                                         int    flags,
  183.                                         int    died );
  184.  
  185.  
  186. //
  187. // Set/Get the game's current limits.
  188. // Used by the server script to decide when the game ends.
  189. //
  190. prototype        iMultiplay.SetFragLimit( int frags );
  191. prototype int    iMultiplay.FragLimit();
  192.  
  193. prototype       iMultiplay.SetTimeLimit( int seconds );
  194. prototype int   iMultiplay.TimeLimit();
  195.  
  196. prototype float iMultiplay.AIBotsSkillLevel();
  197. prototype int   iMultiplay.AIBotsCount();
  198. prototype bool  iMultiplay.UseAIBots();
  199.  
  200.  
  201. //
  202. // Sets the game type
  203. // This string is queried by the server browser and
  204. // is used as a key to localise the text.
  205. // Standard is to use "DM"  for Death Match
  206. //                and "CTF" for Capture the Flag
  207. //
  208. prototype       iMultiplay.SetGameType( string game_type );
  209.  
  210.  
  211. //
  212. // Tells server to send a respawn event to the client
  213. // who owns this sim.
  214. //
  215. prototype bool iMultiplay.SetForRespawn ( hsim sim );
  216.  
  217. //
  218. // Return the list of player ships
  219. //
  220. prototype list iMultiplay.ServerPlayerList();
  221.  
  222. //
  223. // Return a random sim from the current list of players
  224. //
  225. prototype hsim iMultiplay.ServerRandomPlayer();
  226.  
  227.  
  228.  
  229. //
  230. // Return the Killed count for player i.
  231. //
  232. prototype int iMultiplay.ServerPlayerDiedCount(  hsim sim_id  );
  233.  
  234. //
  235. // Return the number of frags that player i has scored
  236. //
  237. prototype int iMultiplay.ServerPlayerFragCount( hsim sim_id  );
  238.  
  239. //
  240. // Return the number of flags that player i has captured
  241. //
  242. prototype int iMultiplay.ServerPlayerFlagsCount( hsim sim_id );
  243.  
  244.  
  245.  
  246. //
  247. // Set the number of flags captured by player i.
  248. //
  249. prototype iMultiplay.ServerSetPlayerFlagsCount( hsim sim_id, int count );
  250.  
  251. //
  252. // Set the number of frags for player i.
  253. //
  254. prototype iMultiplay.ServerSetPlayerFragsCount( hsim sim_id, int count );
  255.  
  256.  
  257. //
  258. // Set the died count for player i.
  259. //
  260. prototype iMultiplay.ServerSetPlayerDiedCount( hsim sim_id, int count );
  261.  
  262.  
  263. //
  264. // Return the team associated with player i.
  265. //
  266. prototype string iMultiplay.ServerPlayerTeam( hsim sim_id );
  267.  
  268.  
  269. //
  270. // Set the winning team name, which is then sent to all clients
  271. // in the eng game info message.
  272. //
  273. prototype iMultiplay.ServerSetWinningTeam( string team_name );
  274.  
  275.  
  276. //
  277. // Set the team for player i.
  278. //
  279. prototype iMultiplay.ServerSetPlayerTeam( hsim sim_id, string team );
  280.  
  281. //
  282. // Reset the team list.
  283. //
  284. prototype iMultiplay.ServerResetTeams();
  285.  
  286.  
  287. //
  288. // Resets the frag count and killed count for all players
  289. //
  290. prototype bool iMultiplay.ServerResetScores();
  291.  
  292. //
  293. // Return ping time for player sim
  294. //
  295. prototype int iMultiplay.ServerPlayerPing( hsim sim_id );
  296.  
  297. //
  298. // Return IP address of player sim
  299. //
  300. prototype int iMultiplay.ServerPlayerIP( hsim isim_id );
  301.  
  302. //
  303. // Return IP address of server machine
  304. //
  305. prototype int iMultiplay.ServerIP();
  306.  
  307. //
  308. // Reject a client from the game
  309. //
  310. prototype iMultiplay.ServerRejectClient( hsim sim_id, string reason );
  311.  
  312.  
  313. // 
  314. // Send a message to all clients
  315. //
  316. prototype iMultiplay.ServerBroadcastMessage( hsim sender, string message, eBcastMessageType message_type );
  317.  
  318. //
  319. // Send a message to a specific client only
  320. //
  321. prototype iMultiplay.ServerSendPlayerMessage( int i , string message, eBcastMessageType message_type );
  322.  
  323.  
  324. //
  325. // iMultiplay.ServerSendUserMessage( int i, hsim sim1, hsim sim2, string data );
  326. //
  327. // Send a user defined message to the server.
  328. // i is a tag which distinguishes the type of message,
  329. // hsim1 is the handle of the sim associated with the message event,
  330. // (or none if it's not a sim specific message).
  331. // hsim2 is the handle of an additional sim (or none if not needed)
  332. // data is any additional data sent in string format.
  333. //
  334. // The message is sent to all clients that have a local copy of sim1.
  335. //
  336. prototype iMultiplay.ServerSendUserMessage( int i, hsim sim1, hsim sim2, string data );
  337.  
  338.  
  339. //
  340. // iMultiplay.ServerSetSortMode( eScoreSortMode mode );
  341. //
  342. // Determines wow the player scores get sorted
  343. //
  344. prototype iMultiplay.ServerSetSortMode( eScoreSortMode mode );
  345.  
  346.  
  347. //
  348. // For testing
  349. //
  350.  
  351. prototype iMultiplay.DebugMessage( string message );
  352. prototype iMultiplay.ServerSetDebugMode( int dm );
  353.  
  354. prototype int iMultiplay.ServerDebugMode();
  355.  
  356. prototype float iMultiplay.DebugSimPositionX( hsim sim );
  357. prototype float iMultiplay.DebugSimPositionY( hsim sim );
  358. prototype float iMultiplay.DebugSimPositionZ( hsim sim );
  359.  
  360.  
  361. //
  362. // Used by both client & server to modify ship properties
  363. //
  364.  
  365. // Add an amount to all ammo-type weapons on a ship
  366. // i.e. missiles.
  367. prototype iMultiplay.AddAmmo( hship ship, int amount );
  368.  
  369. // multiply weapons firing rate by  percent_change.
  370. prototype iMultiplay.ChangeWeaponFireRate( hship ship, float percent_change );
  371.  
  372.  
  373. //
  374. // Apply -ve weapon damage.
  375. //
  376. prototype iMultiplay.AddHealth( hship ship, float percent_increase );
  377.  
  378.  
  379. //
  380. // increase/decrease maximum speed limit
  381. //
  382. prototype iMultiplay.ChangeMaxSpeed( hship ship, float percent_change );
  383.  
  384.  
  385.  
  386. //
  387. // Connect/Disconnect autorepair systems.
  388. //
  389. prototype iMultiplay.AutoRepair( hship ship, bool repair );
  390.  
  391.  
  392. // bool iMultiplay.IsClient()
  393. //
  394. // returns true if we are running as a client
  395. // false if we're the server
  396. //
  397. prototype bool iMultiplay.IsClient();
  398.  
  399.  
  400. // bool iMultiplay.IsGameEnded()
  401. //
  402. // Called by the client to see if the game has ended
  403. //
  404. prototype bool iMultiplay.IsGameEnded();
  405.  
  406.  
  407. //
  408. //
  409. // Multiplay Client routines
  410. //
  411. // Theses routines only make sense when called by the client.
  412. //
  413. //
  414.  
  415.  
  416.  
  417. //
  418. // returns the list of player ids
  419. prototype list iMultiplay.ClientPlayerList();
  420.  
  421.  
  422. //
  423. // bool iMultiplay.SetPlayerShip( hship ship, string playername, hship old_ship )
  424. //
  425. // Sets the ship's NetRole to NR_ClientSim and changes its name.
  426. // This will cause the sim to be propogated first to the server and
  427. // then from the server to any other clients on the network as and
  428. // when they join the game.
  429. //
  430. // The list of players is also updated to include the new local player
  431. // and remove any old instance of the player ship
  432. //
  433. prototype bool iMultiplay.SetPlayerShip( hship ship, string playername, hship old_ship );
  434.  
  435.  
  436.  
  437.  
  438. //
  439. // FtNat iMultiplay.ClientFragCount()
  440. //
  441. // Returns this client's player score
  442. //
  443. prototype int iMultiplay.ClientFragCount();
  444.  
  445.  
  446. //
  447. // FtNat iMultiplay.ClientFragCount()
  448. //
  449. // Returns this client's killed score
  450. //
  451. prototype int iMultiplay.ClientKilledCount();
  452.  
  453.  
  454. //
  455. // Returns frag/killed info for all players in last session
  456. //
  457. prototype string iMultiplay.ClientPlayerStats();
  458.  
  459.  
  460. //
  461. // Interface to the ClientEndGameInfo list
  462. //
  463. prototype int    iMultiplay.ClientEndGameInfoCount();
  464.  
  465. prototype string iMultiplay.ClientEndGameInfoName( int i );
  466.  
  467. prototype string iMultiplay.ClientEndGameInfoTeam( int i );
  468.  
  469. prototype int    iMultiplay.ClientEndGameInfoFrags( int i );
  470.  
  471. prototype int    iMultiplay.ClientEndGameInfoFlags( int i );
  472.  
  473. prototype int    iMultiplay.ClientEndGameInfoDied( int i );
  474.  
  475.  
  476. //
  477. // Resets the frag & killed count for our own player
  478. //
  479. prototype bool iMultiplay.ClientResetScores();
  480.  
  481.  
  482. //
  483. // bool iMultiplay.ClientBroadcast( string message )
  484. //
  485. // Sends a message to all other players on the network
  486. //
  487. prototype iMultiplay.ClientBroadcastMessage( hsim sim, string message, eBcastMessageType message_type );
  488.  
  489. //
  490. // Send a message to all other team members on the network
  491. //
  492. prototype iMultiplay.ClientBroadcastTeamMessage( hsim sim, string message, eBcastMessageType message_type );
  493.  
  494.  
  495. //
  496. // Uses icComms to send a message locally to the hud.
  497. //
  498. prototype iMultiplay.ClientSay( hsim sim, string message );
  499.  
  500.  
  501. //
  502. // Returns the client's user id (2 .. n )
  503. //
  504. prototype int iMultiplay.ClientUID();
  505.  
  506.  
  507. //
  508. // Find out if we are a team game
  509. //
  510. prototype bool iMultiplay.ClientIsTeamGame();
  511.  
  512. //
  513. // Set Team Game status
  514. //
  515. prototype iMultiplay.ClientSetTeamGame( bool team_game );
  516.  
  517.  
  518.  
  519.  
  520.  
  521. //
  522. // iMultiplay.ClientSendUserMessage( int i, hsim sim1, hsim sim2, string data );
  523. //
  524. // Send a user defined message to the server.
  525. // i is a tag which distinguishes the type of message,
  526. // hsim1 is the handle of the sim associated with the message event,
  527. // (or none if it's not a sim specific message).
  528. // hsim2 is an additional sim handle.
  529. // data is the actual data sent in string format.
  530. //
  531. prototype iMultiplay.ClientSendUserMessage( int i, hsim sim1, hsim sim2, string data );
  532.  
  533.  
  534. //
  535. // Stuff for storing a player's options
  536. //
  537. prototype            iMultiplay.ClientOptionsLoad();
  538. prototype            iMultiplay.ClientOptionsSave();
  539. prototype string    iMultiplay.ClientOptionsName();
  540. prototype string    iMultiplay.ClientOptionsDefaultTaunt( int i );
  541. prototype            iMultiplay.ClientOptionsSetName( string name);
  542. prototype string    iMultiplay.ClientOptionsShip();
  543. prototype            iMultiplay.ClientOptionsSetShip( string ship_resource );
  544. prototype bool        iMultiplay.ClientOptionsHostSession();
  545. prototype bool      iMultiplay.ClientOptionsSetHostSession( bool host_it );
  546. prototype string    iMultiplay.ClientOptionsServerAddress();
  547. prototype           iMultiplay.ClientOptionsSetServerAddress( string address );
  548. prototype bool      iMultiplay.ClientOptionsServerAIBots();
  549. prototype           iMultiplay.ClientOptionsSetServerAIBots( bool have_bots );
  550. prototype float     iMultiplay.ClientOptionsServerAIBotsSkill();
  551. prototype           iMultiplay.ClientOptionsSetServerAIBotsSkill( float skill_level );
  552. prototype int       iMultiplay.ClientOptionsServerAIBotsCount();
  553. prototype           iMultiplay.ClientOptionsSetServerAIBotsCount( int count );
  554. prototype bool      iMultiplay.ClientOptionsServerArcadeMode();
  555. prototype           iMultiplay.ClientOptionsSetServerArcadeMode( bool arcade_mode );
  556.  
  557. prototype string    iMultiplay.ClientOptionsServerName();
  558. prototype string    iMultiplay.ClientOptionsServerPackage();
  559. prototype string    iMultiplay.ClientOptionsServerMap();
  560. prototype int       iMultiplay.ClientOptionsServerFragLimit();
  561. prototype int       iMultiplay.ClientOptionsServerTimeLimit();
  562. prototype           iMultiplay.ClientOptionsSetServerName( string name );
  563. prototype           iMultiplay.ClientOptionsSetServerPackage( string package_name );
  564. prototype           iMultiplay.ClientOptionsSetServerMap( string map );
  565. prototype           iMultiplay.ClientOptionsSetServerFragLimit( int limit );
  566. prototype           iMultiplay.ClientOptionsSetServerTimeLimit( int limit );
  567.  
  568. //
  569. // Client SFX routines
  570. //
  571.  
  572. // Creates the default respawn visual effect.
  573. prototype iMultiplay.ClientAddRespawnEffect( hship ship );
  574.  
  575. // Add the 'taunt' edit box to the HUD.
  576. // HUD edit box is initialised with the default_text string.
  577. // <package>.ClientTauntReturn() isthe pog function that gets called with
  578. // a copy of the edit box contents afterwards.
  579. prototype iMultiplay.ClientOpenHUDTauntBox( string default_text );
  580.  
  581.  
  582. //
  583. //
  584. // Networking stuff
  585. //
  586. //
  587.  
  588. //
  589. // Return the number of server sessions active for the
  590. // selected protcol.
  591. //
  592. prototype int    iMultiplay.NetworkSessionCount();
  593.  
  594. //
  595. // Returnt the string name of session i.
  596. //
  597. prototype string iMultiplay.NetworkSessionItem( int i );
  598.  
  599. //
  600. // Return current number of players for session i.
  601. //
  602. prototype int    iMultiplay.NetworkSessionPlayers( int i );
  603.  
  604. //
  605. // Return maximum number of players for session i.
  606. //
  607. prototype int    iMultiplay.NetworkSessionMaxPlayers( int i );
  608.  
  609. //
  610. // Return the number of supported protocols
  611. // 
  612. prototype int    iMultiplay.NetworkProtocolCount();
  613.  
  614. //
  615. // Return the string name of protocol i.
  616. // i.e. "DirectPlay TCP/IP Protocol" etc.
  617. //
  618. prototype string iMultiplay.NetworkProtocolItem( int i );
  619.  
  620. //
  621. // Select the ith protocol.
  622. //
  623. prototype bool   iMultiplay.NetworkSetProtocol( int i );
  624.  
  625. //
  626. // Connect a client to a host using network address host.
  627. //
  628. prototype bool   iMultiplay.NetworkConnectHost( string host );
  629.  
  630. //
  631. // Connect a client using current protocol info only.
  632. //
  633. prototype bool   iMultiplay.NetworkConnect();
  634.  
  635. //
  636. // Returns true if the client was started from a lobby session.
  637. //
  638. prototype bool iMultiplay.NetworkIsLobbySession();
  639.  
  640. //
  641. //
  642. //
  643. prototype bool iMultiplay.NetworkBeginSessionFromLobby( hobject id);
  644.  
  645. //
  646. // Start enumeration of active sessions for the currently
  647. // selected protocol.
  648. //
  649. prototype bool iMultiplay.NetworkBeginSessionSearch();
  650.  
  651. //
  652. // Stop enumeration of active sessions for the currently
  653. // selected protocol.
  654. //
  655. prototype bool iMultiplay.NetworkEndSessionSearch();
  656.  
  657. //
  658. // Reset the network device.
  659. //
  660. prototype bool iMultiplay.NetworkReset();
  661.  
  662. //
  663. // Used by the client to spawn a copy of the server app.
  664. // Command line specifies extra parameters other than
  665. // the the executable and class name for the flux loader.
  666. //
  667. prototype iMultiplay.ServerAppSpawn( string command_line );
  668.  
  669. // 
  670. // We only keep a handle to one spawned copy per client
  671. // So this tells us if we can spawn another.
  672. //
  673. prototype bool iMultiplay.IsServerAppSpawned();
  674.  
  675. //
  676. // Used to kill off the application
  677. //
  678. prototype iMultiplay.ServerAppTerminate();
  679.  
  680.  
  681. //
  682. //
  683. // Interface to the new ServerBrowser class
  684. //
  685. //
  686.  
  687. prototype        iMultiplay.ServerBrowserCreate();
  688. prototype        iMultiplay.ServerBrowserDestroy();
  689. prototype        iMultiplay.ServerBrowserSetPogFunctions( string update_func, string complete_func );
  690. prototype bool   iMultiplay.ServerBrowserUpdateComplete();
  691. prototype        iMultiplay.ServerBrowserBeginLAN();
  692. prototype        iMultiplay.ServerBrowserBeginInternet();
  693. prototype int    iMultiplay.ServerBrowserCount();
  694. prototype string iMultiplay.ServerBrowserDisplayItem( int i );
  695. prototype string iMultiplay.ServerBrowserAddress( int i );
  696. prototype int    iMultiplay.ServerBrowserPort( int i );
  697. prototype int    iMultiplay.ServerBrowserPing( int i );
  698. prototype int    iMultiplay.ServerBrowserPlayers( int i );
  699. prototype int    iMultiplay.ServerBrowserMaxPlayers( int i );
  700. prototype string iMultiplay.ServerBrowserGameType( int i );
  701. prototype string iMultiplay.ServerBrowserMapName( int i );
  702. prototype string iMultiplay.ServerBrowserSessionName( int i );
  703. prototype string iMultiplay.ServerBrowserVersion( int i );
  704. prototype int    iMultiplay.ServerBrowserSessionIndex( int i );
  705. prototype bool   iMultiplay.ServerBrowserValidateKey( string key );
  706.  
  707. prototype int    iMultiplay.ServerSessionIndexFromName( string ip_address, string session_name );
  708.  
  709. //
  710. // Find out our protocol version number.
  711. //
  712. prototype int iMultiplay.ProtocolVersion();
  713.  
  714.  
  715. //
  716. // The following routines get the list of server package ini files 
  717. // contained in the resource/multiplayer/packages directory.
  718. //
  719.  
  720. // Constructs the list of multiplayer package ini filenames,
  721. // returning the current count.
  722. prototype int    iMultiplay.GetServerPackageList();
  723.  
  724. // Constructs the list of maps available for the given package,
  725. // returning the current count.
  726. prototype int    iMultiplay.GetServerMapList( string package_name );
  727.  
  728. // Return ini file name for item i.
  729. prototype string iMultiplay.ServerPackageListItem( int i );
  730. prototype string iMultiplay.ServerMapListItem( int i );
  731. // short version, just "tdm" or whatever
  732. prototype string iMultiplay.ServerPackageListItemShort( int i);
  733. prototype string iMultiplay.ServerMapListItemShort( int i );
  734.  
  735.  
  736. // Constructs the list of multiplayer ship ini filenames,
  737. // returning the current count.
  738. prototype int    iMultiplay.GetServerShipList();
  739.  
  740. // Return ini file name for item i.
  741. prototype string iMultiplay.ServerShipListItem( int i );
  742.  
  743.  
  744.  
  745. //
  746. // Used by the client for map/package cycling
  747. prototype bool     iMultiplay.ClientRequestedToCycle();
  748. prototype          iMultiplay.ClientSetRequestedToCycle( bool cycling );
  749. prototype string   iMultiplay.ClientLastAddress();
  750. prototype string   iMultiplay.ClientLastSession();
  751. prototype          iMultiplay.ClientSetLastAddress( string address );
  752. prototype          iMultiplay.ClientSetLastSession( string session );
  753. prototype int      iMultiplay.ClientRejectedCount();
  754.  
  755.  
  756. //
  757. // Used by client and server
  758. //
  759.  
  760. //
  761. // Returns the package ini file, i.e. "ini:\multiplay\packages\tdm" etc.
  762. //
  763. prototype string   iMultiplay.PackageINI();
  764. prototype string   iMultiplay.MapINI();
  765.  
  766.  
  767.  
  768. // Remote link player pilot to the given ship
  769. prototype iMultiplay.RemoteLinkTo( hship ship );
  770. prototype iMultiplay.SeverRemoteLinkTo( hship ship );
  771.  
  772.  
  773. #endif // FLUX_DLL
  774.